﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Forms;

namespace TVL
{
    public class TEquipo
    {
        private Objeto _AntebrazoDcha;           
        public Objeto AntebrazoDcha
        {
            get
            {
                return this._AntebrazoDcha;
            }
            set
            {
                if (this._AntebrazoDcha == null)
                {
                    this._AntebrazoDcha = value;
                }
                else
                {
                    DialogResult hola = MessageBox.Show("Ahi ya hay una pieza, ¿Quieres cambiarla por esta?", "PAM!", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation);
                    if (hola.Equals(DialogResult.OK))
                    {
                        this._AntebrazoDcha = value;
                    }
                }
            }
        }

        private Objeto _AntebrazoIzq; 
        public Objeto AntebrazoIzq
        {
            get
            {
                return this._AntebrazoIzq;
            }
            set
            {
                if (this._AntebrazoIzq == null)
                {
                    this._AntebrazoIzq = value;
                }
                else
                {
                    DialogResult hola = MessageBox.Show("Ahi ya hay una pieza, ¿Quieres cambiarla por esta?", "PAM!", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation);
                    if (hola.Equals(DialogResult.OK))
                    {
                        _AntebrazoIzq = value;
                    }
                }
            }
        }

        private Objeto _Cabeza; 
        public Objeto Cabeza
        {
            get
            {
                return this._Cabeza;
            }
            set
            {
                if (this._Cabeza == null)
                {
                    this._Cabeza = value;
                }
                else
                {
                    DialogResult hola = MessageBox.Show("Ahi ya hay una pieza, ¿Quieres cambiarla por esta?", "PAM!", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation);
                    if (hola.Equals(DialogResult.OK))
                    {
                        _Cabeza = value;
                    }
                }
            }
        }

        private Objeto _Camisa; 
        public Objeto Camisa
        {
            get
            {
                return this._Camisa;
            }
            set
            {
                if (this._Camisa == null)
                {
                    this._Camisa = value;
                }
                else
                {
                    DialogResult hola = MessageBox.Show("Ahi ya hay una pieza, ¿Quieres cambiarla por esta?", "PAM!", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation);
                    if (hola.Equals(DialogResult.OK))
                    {
                        _Camisa = value;
                    }
                }
            }
        }

        private Objeto _Capa; 
        public Objeto Capa
        {
            get
            {
                return this._Capa;
            }
            set
            {
                if (this._Capa == null)
                {
                    this._Capa = value;
                }
                else
                {
                    DialogResult hola = MessageBox.Show("Ahi ya hay una pieza, ¿Quieres cambiarla por esta?", "PAM!", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation);
                    if (hola.Equals(DialogResult.OK))
                    {
                        _Capa = value;
                    }
                }
            }
        }

        private Objeto _ManoDcha; 
        public Objeto ManoDcha
        {
            get
            {
                return this._ManoDcha;
            }
            set
            {
                if (this._ManoDcha == null)
                {
                    this._ManoDcha = value;
                }
                else
                {
                    DialogResult hola = MessageBox.Show("Ahi ya hay una pieza, ¿Quieres cambiarla por esta?", "PAM!", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation);
                    if (hola.Equals(DialogResult.OK))
                    {
                        _ManoDcha = value;
                    }
                }
            }
        }

        private Objeto _ManoIzq; 
        public Objeto ManoIzq
        {
            get
            {
                return this._ManoIzq;
            }
            set
            {
                if (this._ManoIzq == null)
                {
                    this._ManoIzq = value;
                }
                else
                {
                    DialogResult hola = MessageBox.Show("Ahi ya hay una pieza, ¿Quieres cambiarla por esta?", "PAM!", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation);
                    if (hola.Equals(DialogResult.OK))
                    {
                        _ManoIzq = value;
                    }
                }
            }
        }

        private Objeto _Pecho; 
        public Objeto Pecho
        {
            get
            {
                return this._Pecho;
            }
            set
            {
                if (this._Pecho == null)
                {
                    this._Pecho = value;
                }
                else
                {
                    DialogResult hola = MessageBox.Show("Ahi ya hay una pieza, ¿Quieres cambiarla por esta?", "PAM!", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation);
                    if (hola.Equals(DialogResult.OK))
                    {
                        Pecho = value;
                    }
                }
            }
        }

        private Objeto _Piernas; 
        public Objeto Piernas
        {
            get
            {
                return this._Piernas;
            }
            set
            {
                if (this._Piernas == null)
                {
                    this._Piernas = value;
                }
                else
                {
                    DialogResult hola = MessageBox.Show("Ahi ya hay una pieza, ¿Quieres cambiarla por esta?", "PAM!", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation);
                    if (hola.Equals(DialogResult.OK))
                    {
                        _Piernas = value;
                    }
                }
            }
        }

        private Objeto _Pies; 
        public Objeto Pies
        {
            get
            {
                return this._Pies;
            }
            set
            {
                if (this._Pies == null)
                {
                    this._Pies = value;
                }
                else
                {
                    DialogResult hola = MessageBox.Show("Ahi ya hay una pieza, ¿Quieres cambiarla por esta?", "PAM!", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation);
                    if (hola.Equals(DialogResult.OK))
                    {
                        _Pies = value;
                    }
                }
            }
        }      
        //private List<Objeto> Accesorios;

        //varias
        public void Vaciar()
        {
            _ManoDcha = null;
            _ManoIzq = null;
            _Cabeza = null;
            _Camisa = null;
            _Pecho = null;
            _Capa = null;
            _AntebrazoDcha = null;
            _AntebrazoIzq = null;
            _Piernas = null;
            _Pies = null;
        }
        public bool Equipado(Object obj)
        {
            if (obj == _ManoDcha)
                return true;
            else if (obj == _ManoIzq)
                return true;
            else if (obj == _Cabeza)
                return true;
            else if (obj == _Camisa)
                return true;
            else if (obj == _Pecho)
                return true;
            else if (obj == _Capa)
                return true;
            else if (obj == _AntebrazoDcha)
                return true;
            else if (obj == _AntebrazoIzq)
                return true;
            else if (obj == _Piernas)
                return true;
            else if (obj == _Pies)
                return true;
            else
                return false;

        }
       public void Equipar(Objeto obj, Posiciones sitio)
        {
            switch (sitio)
            {
                case Posiciones.ManoDcha:
                    if(obj.CanEquip(Posiciones.ManoDcha))
                    {
                        this._ManoDcha = obj;
                    }
                    else
                    {
                        MessageBox.Show("Ese objeto no puede ser usado ahí.", "Error al equipar",
                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }

                    break;
                case Posiciones.ManoIzq:
                    if (obj.CanEquip(Posiciones.ManoIzq))
                    {
                        this._ManoIzq = obj;
                    }
                    else
                    {
                        MessageBox.Show("Ese objeto no puede ser usado ahí.", "Error al equipar",
                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                    break;
                case Posiciones.Cabeza:
                    if (obj.CanEquip(Posiciones.Cabeza))
                    {
                        this._Cabeza = obj;
                    }
                    else
                    {
                        MessageBox.Show("Ese objeto no puede ser usado ahí.", "Error al equipar",
                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                    break;
                case Posiciones.Camisa:
                    if (obj.CanEquip(Posiciones.Camisa))
                    {
                        this._Camisa = obj;
                    }
                    else
                    {
                        MessageBox.Show("Ese objeto no puede ser usado ahí.", "Error al equipar",
                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                    break;
                case Posiciones.Pecho:
                    if (obj.CanEquip(Posiciones.Pecho))
                    {
                        this._Pecho = obj;
                    }
                    else
                    {
                        MessageBox.Show("Ese objeto no puede ser usado ahí.", "Error al equipar",
                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                    break;
                case Posiciones.Capa:
                    if (obj.CanEquip(Posiciones.Capa))
                    {
                        this._Capa = obj;
                    }
                    else
                    {
                        MessageBox.Show("Ese objeto no puede ser usado ahí.", "Error al equipar",
                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                    break;
                case Posiciones.AntebrazoIzq:
                    if (obj.CanEquip(Posiciones.AntebrazoIzq))
                    {
                        this._AntebrazoIzq = obj;
                    }
                    else
                    {
                        MessageBox.Show("Ese objeto no puede ser usado ahí.", "Error al equipar",
                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                    break;
                case Posiciones.AntebrazoDcha:
                    if (obj.CanEquip(Posiciones.AntebrazoDcha))
                    {
                        this._AntebrazoDcha = obj;
                    }
                    else
                    {
                        MessageBox.Show("Ese objeto no puede ser usado ahí.", "Error al equipar",
                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                    break;
                case Posiciones.Piernas:
                    if (obj.CanEquip(Posiciones.Piernas))
                    {
                        this._Piernas = obj;
                    }
                    else
                    {
                        MessageBox.Show("Ese objeto no puede ser usado ahí.", "Error al equipar",
                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                    break;
                case Posiciones.Pies:
                    if (obj.CanEquip(Posiciones.Pies))
                    {
                        this._Pies = obj;
                    }
                    else
                    {
                        MessageBox.Show("Ese objeto no puede ser usado ahí.", "Error al equipar",
                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                    break;
                default:
                    break;
            }
        }

       public TEquipo()
       {
           _ManoDcha = new Objeto();
           _ManoIzq = new Objeto();
           _Cabeza = new Objeto();
           _Camisa = new Objeto();
           _Pecho = new Objeto();
           _Capa = new Objeto();
           _AntebrazoDcha = new Objeto();
           _AntebrazoIzq = new Objeto();
           _Piernas = new Objeto();
           _Pies = new Objeto();
       }


    }

}
